package com.fenqile.pop.product.param;

import java.time.LocalDateTime;

import com.fenqile.pop.enums.ProductStatus;
import com.fenqile.pop.product.ProductInfo;
import com.fenqile.pop.product.result.ProductListGetResult;
import com.fenqile.pop.utility.FieldOpt;

/**
 * 商品列表查询 {@value #API_METHOD}
 * <br />
 * 从 {@link AbstractProductIdParameter} 继承的字段为非必须
 * 
 * @see AbstractProductIdParameter
 * @see ProductListGetResult
 * 
 * @author Coby [cobylin@live.com] 2017
 */
public class ProductListGetParameter extends AbstractProductIdParameter<ProductListGetResult> {
	public static final String API_METHOD = "fenqile.product.list.get";
	
	/**
	 * 起始时间
	 */
	public LocalDateTime begin_time; 

	/**
	 * 结束时间
	 */
	public LocalDateTime end_time; 
	  
	/**
	 * 商品状态
	 */
	public ProductStatus status;
	
	/**
	 * 一级类目id
	 */
	public Integer category_id_1;
	
	/**
	 * 二级类目id
	 */
	public Integer category_id_2;
	
	/**
	 * 三级类目id
	 */
	public Integer category_id_3;
	
	/**
	 * 当前页码，默认 为1
	 */
	public Integer page;
	
	/**
	 * 每页条数，默认 40，最大100
	 */
	public Integer page_size;
	
	/**
	 * 目前支持 create_time 、 modify_time 的排 序 排序方式。格式 为 column:asc/d esc, 默认商品 发布时间降序
	 */
	public Integer sort_type; 
	
	/**
	 * 0 表示不返回价格策略，非 0 表示返回价格策略对应 定价方式，如基 准金价、自定义 定价
	 */
	public Integer need_price_strategy; 
	
	/**
	 * 结果集返回字 段列表，多个字 段以半角逗号 分隔,可选值为响应说明 中的所有一级参数
	 * 必须 
	 */
	public FieldOpt<ProductInfo> fields = new FieldOpt<>(ProductInfo.class);
	
	@Override
	public String getApiMethod() {
		return API_METHOD;
	}

}
